home *** CD-ROM | disk | FTP | other *** search
/ Aminet 5 / Aminet 5 - March 1995.iso / Aminet / dev / gcc / gcc263_doc.lha / gnu / man / man1 / g++.1 < prev    next >
Text File  |  1994-12-19  |  31KB  |  595 lines

  1.  
  2.  
  3.  
  4. G++(1)                      GNU Tools                      G++(1)
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      g++ - GNU project C++ Compiler (v2.4)
  10.  
  11. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.      g++ [[[[_o_p_t_i_o_n | _f_i_l_e_n_a_m_e ]...
  13.  
  14. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  15.      The C and C++ compilers are integrated; gggg++++++++ is a  script  to
  16.      call ggggcccccccc wwwwiiiitttthhhh ooooppppttttiiiioooonnnnssss ttttoooo rrrreeeeccccooooggggnnnniiiizzzzeeee CCCC++++++++....  ggggcccccccc processes input
  17.      files through one or more  of  four  stages:  preprocessing,
  18.      compilation,  assembly, and linking.  This man page contains
  19.      full descriptions for _o_n_l_y C++ specific aspects of the  com-
  20.      piler,  though  it  also contains summaries of some general-
  21.      purpose options.  For a fuller explanation of the  compiler,
  22.      see ggggcccccccc(1111).
  23.  
  24.      C++ source files use one of the  suffixes  `....CCCC',  `....cccccccc',  or
  25.      `....ccccxxxxxxxx'; preprocessed C++ files use the suffix `....iiiiiiii'.
  26.  
  27. OOOOPPPPTTTTIIIIOOOONNNNSSSS
  28.      There are many command-line options,  including  options  to
  29.      control  details of optimization, warnings, and code genera-
  30.      tion, which are common to both ggggcccccccc and gggg++++++++.  For full infor-
  31.      mation on all options, see ggggcccccccc(1111).
  32.  
  33.      Options must be separate: `----ddddrrrr' is quite different from `---- dddd
  34.      ----rrrr '.
  35.  
  36.      Most `----ffff' and `----WWWW' options have two contrary forms:  ---- ffff_n_a_m_e
  37.      and   ---- ffffnnnnoooo ---- _n_a_m_e  (or ----WWWW_n_a_m_e and ----WWWWnnnnoooo----_n_a_m_e). Only the non-
  38.      default forms are shown here.
  39.  
  40.  
  41.      ----cccc    Compile or assemble the source files, but do not link.
  42.           The  compiler output is an object file corresponding to
  43.           each source file.
  44.  
  45.      ----DDDD_m_a_c_r_o
  46.           Define macro _m_a_c_r_o with the string `1111' as  its  defini-
  47.           tion.
  48.  
  49.      ----DDDD_m_a_c_r_o====_d_e_f_n
  50.           Define macro _m_a_c_r_o as _d_e_f_n.
  51.  
  52.      ----EEEE    Stop after the preprocessing stage;  do  not  run  the
  53.           compiler  proper.   The  output  is preprocessed source
  54.           code, which is sent to the standard output.
  55.  
  56.      ----ffffaaaallllllll----vvvviiiirrrrttttuuuuaaaallll
  57.           Treat all possible member functions as virtual,  impli-
  58.           citly.   All  member  functions (except for constructor
  59.           functions and  nnnneeeewwww  or  ddddeeeelllleeeetttteeee  member  operators)  are
  60.  
  61.  
  62.  
  63. GNU Tools            Last change: 30apr1993                     1
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. G++(1)                      GNU Tools                      G++(1)
  71.  
  72.  
  73.  
  74.           treated  as  virtual  functions of the class where they
  75.           appear.
  76.  
  77.           This does not mean that all calls to these member func-
  78.           tions  will  be made through the internal table of vir-
  79.           tual functions.  Under some circumstances, the compiler
  80.           can  determine  that a call to a given virtual function
  81.           can be made directly; in  these  cases  the  calls  are
  82.           direct in any case.
  83.  
  84.      ----ffffddddoooollllllllaaaarrrrssss----iiiinnnn----iiiiddddeeeennnnttttiiiiffffiiiieeeerrrrssss
  85.           Permit the use of `$$$$' in  identifiers.   Traditional  C
  86.           allowed  the character `$$$$' to form part of identifiers;
  87.           by default, GNU C also allows this.   However,  ANSI  C
  88.           forbids `$$$$' in identifiers, and GNU C++ also forbids it
  89.           by default on most platforms (though on some  platforms
  90.           it's enabled by default for GNU C++ as well).
  91.  
  92.      ----ffffeeeelllliiiiddddeeee----ccccoooonnnnssssttttrrrruuuuccccttttoooorrrrssss
  93.           Use this option to instruct the compiler to be  smarter
  94.           about  when  it  can  elide constructors.  Without this
  95.           flag, GNU C++ and cfront both generate effectively  the
  96.           same code for:
  97.  
  98.           A foo ();
  99.           A x (foo ());   // x initialized by `foo ()', no ctor called
  100.           A y = foo ();   // call to `foo ()' heads to temporary,
  101.                           // y is initialized from the temporary.
  102.  
  103.           Note the difference!  With this flag, GNU C++  initial-
  104.           izes `yyyy' directly from the call to ffffoooooooo (((()))) without going
  105.           through a temporary.
  106.  
  107.      ----ffffeeeennnnuuuummmm----iiiinnnntttt----eeeeqqqquuuuiiiivvvv
  108.           Normally GNU C++ allows conversion of eeeennnnuuuummmm to iiiinnnntttt,  but
  109.           not  the other way around.  Use this option if you want
  110.           GNU C++ to allow conversion of iiiinnnntttt to eeeennnnuuuummmm as well.
  111.  
  112.      ----ffffeeeexxxxtttteeeerrrrnnnnaaaallll----tttteeeemmmmppppllllaaaatttteeeessss
  113.           Produce smaller code for template declarations, by gen-
  114.           erating  only  a  single copy of each template function
  115.           where it is defined.  To use this option  successfully,
  116.           you  must  also  mark all files that use templates with
  117.           either `####pppprrrraaaaggggmmmmaaaa  iiiimmmmpppplllleeeemmmmeeeennnnttttaaaattttiiiioooonnnn'  (the  definition)  or
  118.           `####pppprrrraaaaggggmmmmaaaa iiiinnnntttteeeerrrrffffaaaacccceeee' (declarations).
  119.  
  120.           When your code is compiled with `----ffffeeeexxxxtttteeeerrrrnnnnaaaallll----tttteeeemmmmppppllllaaaatttteeeessss',
  121.           all  template  instantiations  are  external.  You must
  122.           arrange for all necessary instantiations to  appear  in
  123.           the implementation file; you can do this with a ttttyyyyppppeeeeddddeeeeffff
  124.           that references each instantiation needed.  Conversely,
  125.           when  you  compile  using  the  default  option  `----ffffnnnnoooo----
  126.  
  127.  
  128.  
  129. GNU Tools            Last change: 30apr1993                     2
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. G++(1)                      GNU Tools                      G++(1)
  137.  
  138.  
  139.  
  140.           eeeexxxxtttteeeerrrrnnnnaaaallll----tttteeeemmmmppppllllaaaatttteeeessss', all  template  instantiations  are
  141.           explicitly internal.
  142.  
  143.      ----ffffnnnnoooo----ggggnnnnuuuu----lllliiiinnnnkkkkeeeerrrr
  144.           Do not output global initializations (such as C++  con-
  145.           structors  and destructors) in the form used by the GNU
  146.           linker (on systems where the GNU linker is the standard
  147.           method  of  handling  them).   Use this option when you
  148.           want to use a non-GNU linker, which also requires using
  149.           the  ccccoooolllllllleeeecccctttt2222  program  to  make sure the system linker
  150.           includes constructors and  destructors.   (ccccoooolllllllleeeecccctttt2222  is
  151.           included  in  the  GNU  CC  distribution.)  For systems
  152.           which _m_u_s_t use ccccoooolllllllleeeecccctttt2222, the  compiler  driver  ggggcccccccc  is
  153.           configured to do this automatically.
  154.  
  155.      ----ffffmmmmeeeemmmmooooiiiizzzzeeee----llllooooooookkkkuuuuppppssss
  156.  
  157.      ----ffffssssaaaavvvveeee----mmmmeeeemmmmooooiiiizzzzeeeedddd
  158.           These flags are used to get  the  compiler  to  compile
  159.           programs  faster  using heuristics.  They are not on by
  160.           default since they are only effective  about  half  the
  161.           time.  The other half of the time programs compile more
  162.           slowly (and take more memory).
  163.  
  164.           The first time the compiler must  build  a  call  to  a
  165.           member  function  (or  reference  to a data member), it
  166.           must (1) determine whether the class implements  member
  167.           functions  of that name; (2) resolve which member func-
  168.           tion to call (which involves figuring out what sorts of
  169.           type  conversions  need  to be made); and (3) check the
  170.           visibility of the member function to the  caller.   All
  171.           of  this  adds up to slower compilation.  Normally, the
  172.           second time a call is made to that member function  (or
  173.           reference  to that data member), it must go through the
  174.           same lengthy process again.  This means that code  like
  175.           this
  176.  
  177.             cout << "This " << p << " has " << n << " legs.\n";
  178.  
  179.           makes six passes through all three steps.  By  using  a
  180.           software  cache,  a  ``hit'' significantly reduces this
  181.           cost.   Unfortunately,  using  the   cache   introduces
  182.           another  layer of mechanisms which must be implemented,
  183.           and so incurs its own overhead.  `---- ffffmmmmeeeemmmmooooiiiizzzzeeee ---- llllooooooookkkkuuuuppppssss'
  184.           enables the software cache.
  185.  
  186.           Because access privileges (visibility) to  members  and
  187.           member  functions  may differ from one function context
  188.           to the next, gggg++++++++ may need to flush the cache. With  the
  189.           ` ---- ffffmmmmeeeemmmmooooiiiizzzzeeee ----llllooooooookkkkuuuuppppssss' flag, the cache is flushed after
  190.           every function that is compiled.  The `-fsave-memoized'
  191.           flag  enables  the  same  software  cache, but when the
  192.  
  193.  
  194.  
  195. GNU Tools            Last change: 30apr1993                     3
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. G++(1)                      GNU Tools                      G++(1)
  203.  
  204.  
  205.  
  206.           compiler determines that the context of the last  func-
  207.           tion compiled would yield the same access privileges of
  208.           the next function to compile, it preserves  the  cache.
  209.           This  is  most  helpful when defining many member func-
  210.           tions for the same class: with the exception of  member
  211.           functions  which  are  friends  of  other classes, each
  212.           member function has exactly the same access  privileges
  213.           as every other, and the cache need not be flushed.
  214.  
  215.      ----ffffnnnnoooo----ddddeeeeffffaaaauuuulllltttt----iiiinnnnlllliiiinnnneeee
  216.           Do not make member functions inline by  default  merely
  217.           because  they are defined inside the class scope.  Oth-
  218.           erwise, when you specify ----OOOO, member  functions  defined
  219.           inside  class  scope  are  compiled  inline by default;
  220.           i.e., you don't need to add `iiiinnnnlllliiiinnnneeee' in  front  of  the
  221.           member function name.
  222.  
  223.      ----ffffnnnnoooo----ssssttttrrrriiiicccctttt----pppprrrroooottttoooottttyyyyppppeeee
  224.           Consider the declaration iiiinnnntttt ffffoooooooo  (((())));;;;.   In  C++,  this
  225.           means  that  the  function  ffffoooooooo takes no arguments.  In
  226.           ANSI C, this is declared iiiinnnntttt ffffoooooooo((((vvvvooooiiiidddd))));;;;.  With the flag
  227.           ` ---- ffffnnnnoooo ----ssssttttrrrriiiicccctttt----pppprrrroooottttoooottttyyyyppppeeee', declaring functions with no
  228.           arguments is equivalent to declaring its argument  list
  229.           to  be untyped, i.e., iiiinnnntttt ffffoooooooo (((())));;;; is equivalent to say-
  230.           ing iiiinnnntttt ffffoooooooo ((((............))));;;;.
  231.  
  232.      ----ffffnnnnoooonnnnnnnnuuuullllllll----oooobbbbjjjjeeeeccccttttssss
  233.           Normally, GNU C++ makes conservative assumptions  about
  234.           objects  reached  through references.  For example, the
  235.           compiler must check that `aaaa' is not null in  code  like
  236.           the following:
  237.               obj &a = g ();
  238.               a.f (2);
  239.           Checking that references of  this  sort  have  non-null
  240.           values requires extra code, however, and it is unneces-
  241.           sary for many programs.   You  can  use  ` ---- ffffnnnnoooonnnnnnnnuuuullllllll ----
  242.           oooobbbbjjjjeeeeccccttttssss'  to  omit the checks for null, if your program
  243.           doesn't require the default checking.
  244.  
  245.      ----ffffhhhhaaaannnnddddlllleeee----ssssiiiiggggnnnnaaaattttuuuurrrreeeessss
  246.  
  247.      ----ffffnnnnoooo----hhhhaaaannnnddddlllleeee----ssssiiiiggggnnnnaaaattttuuuurrrreeeessss
  248.           These options control the recognition of the  ssssiiiiggggnnnnaaaattttuuuurrrreeee
  249.           and ssssiiiiggggooooffff constructs for specifying abstract types.  By
  250.           default, these constructs are not recognized.
  251.  
  252.      ----fffftttthhhhiiiissss----iiiissss----vvvvaaaarrrriiiiaaaabbbblllleeee
  253.           The incorporation of user-defined free store management
  254.           into  C++  has  made assignment to tttthhhhiiiissss an anachronism.
  255.           Therefore, by default GNU C++ treats the type  of  tttthhhhiiiissss
  256.           in  a  member  function  of ccccllllaaaassssssss XXXX to be XXXX ****ccccoooonnnnsssstttt.  In
  257.           other words, it is illegal to assign to tttthhhhiiiissss  within  a
  258.  
  259.  
  260.  
  261. GNU Tools            Last change: 30apr1993                     4
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. G++(1)                      GNU Tools                      G++(1)
  269.  
  270.  
  271.  
  272.           class member function.  However, for backwards compati-
  273.           bility, you can invoke the old behavior  by  using  ` ----
  274.           fffftttthhhhiiiissss----iiiissss----vvvvaaaarrrriiiiaaaabbbblllleeee'.
  275.  
  276.       ---- gggg    Produce  debugging  information  in  the   operating
  277.           system's  native format (for DBX or SDB or DWARF).  GDB
  278.           also can work with this debugging information.  On most
  279.           systems  that use DBX format, `----gggg' enables use of extra
  280.           debugging information that only GDB can use.
  281.  
  282.           Unlike most other C compilers, GNU CC allows you to use
  283.           ` ----gggg' with `----OOOO'.  The shortcuts taken by optimized code
  284.           may occasionally produce surprising results: some vari-
  285.           ables  you  declared may not exist at all; flow of con-
  286.           trol may briefly move where you did not expect it; some
  287.           statements  may  not  be  executed because they compute
  288.           constant results or their values were already at  hand;
  289.           some statements may execute in different places because
  290.           they were moved out of loops.
  291.  
  292.           Nevertheless it proves possible to debug optimized out-
  293.           put.  This makes it reasonable to use the optimizer for
  294.           programs that might have bugs.
  295.  
  296.      ----IIII_d_i_r
  297.            Append  directory  _d_i_r  to  the  list  of  directories
  298.           searched for include files.
  299.  
  300.      ----LLLL_d_i_r
  301.            Add directory _d_i_r to the list  of  directories  to  be
  302.           searched for `----llll'.
  303.  
  304.      ----llll_l_i_b_r_a_r_y
  305.            Use the library named _l_i_b_r_a_r_y when linking.  (C++ pro-
  306.           grams often require `-lg++' for successful linking.)
  307.  
  308.      ----nnnnoooossssttttddddiiiinnnncccc
  309.           Do not  search  the  standard  system  directories  for
  310.           header  files.  Only the directories you have specified
  311.           with   ---- IIII  options  (and  the  current  directory,  if
  312.           appropriate) are searched.
  313.  
  314.      ----nnnnoooossssttttddddiiiinnnncccc++++++++
  315.           Do not search for header files in the  standard  direc-
  316.           tories  specific  to C++, but do still search the other
  317.           standard directories.  (This option is used when build-
  318.           ing libg++.)
  319.  
  320.      ----OOOO    Optimize.  Optimizing compilation takes somewhat  more
  321.           time, and a lot more memory for a large function.
  322.  
  323.      ----oooo _f_i_l_e
  324.  
  325.  
  326.  
  327. GNU Tools            Last change: 30apr1993                     5
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. G++(1)                      GNU Tools                      G++(1)
  335.  
  336.  
  337.  
  338.            Place output in file _f_i_l_e.
  339.  
  340.      ----SSSS    Stop after the stage of  compilation  proper;  do  not
  341.           assemble.   The  output  is  an assembler code file for
  342.           each non-assembler input file specified.
  343.  
  344.      ----ttttrrrraaaaddddiiiittttiiiioooonnnnaaaallll
  345.           Attempt to support some aspects of traditional  C  com-
  346.           pilers.
  347.  
  348.           Specifically, for both C and C++ programs:
  349.  
  350.         +o  In the preprocessor, comments convert  to  nothing  at
  351.           all,  rather  than to a space.  This allows traditional
  352.           token concatenation.
  353.  
  354.         +o  In the preprocessor, macro  arguments  are  recognized
  355.           within  string  constants  in  a  macro definition (and
  356.           their values are stringified, though without additional
  357.           quote  marks, when they appear in such a context).  The
  358.           preprocessor always considers a string constant to  end
  359.           at a newline.
  360.  
  361.         +o  The preprocessor does not predefine the macro ________SSSSTTTTDDDDCCCC________
  362.           when    you    use    `  ----  ttttrrrraaaaddddiiiittttiiiioooonnnnaaaallll',   but   still
  363.           predefines________GGGGNNNNUUUUCCCC________ (since the GNU extensions  indicated
  364.           by  ________GGGGNNNNUUUUCCCC________  are  not affected by `----ttttrrrraaaaddddiiiittttiiiioooonnnnaaaallll').  If
  365.           you need to write header files  that  work  differently
  366.           depending on whether `----ttttrrrraaaaddddiiiittttiiiioooonnnnaaaallll' is in use, by test-
  367.           ing both of these predefined macros you can distinguish
  368.           four situations: GNU C, traditional GNU C, other ANSI C
  369.           compilers, and other old C compilers.
  370.  
  371.         +o  In the preprocessor, comments convert  to  nothing  at
  372.           all,  rather  than to a space.  This allows traditional
  373.           token concatenation.
  374.  
  375.         +o  In the preprocessor, macro  arguments  are  recognized
  376.           within  string  constants  in  a  macro definition (and
  377.           their values are stringified, though without additional
  378.           quote  marks, when they appear in such a context).  The
  379.           preprocessor always considers a string constant to  end
  380.           at a newline.
  381.  
  382.         +o  The preprocessor does not predefine the macro ________SSSSTTTTDDDDCCCC________
  383.           when    you    use    `  ----  ttttrrrraaaaddddiiiittttiiiioooonnnnaaaallll',   but   still
  384.           predefines________GGGGNNNNUUUUCCCC________ (since the GNU extensions  indicated
  385.           by  ________GGGGNNNNUUUUCCCC________  are  not affected by `----ttttrrrraaaaddddiiiittttiiiioooonnnnaaaallll').  If
  386.           you need to write header files  that  work  differently
  387.           depending on whether `----ttttrrrraaaaddddiiiittttiiiioooonnnnaaaallll' is in use, by test-
  388.           ing both of these predefined macros you can distinguish
  389.           four situations: GNU C, traditional GNU C, other ANSI C
  390.  
  391.  
  392.  
  393. GNU Tools            Last change: 30apr1993                     6
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400. G++(1)                      GNU Tools                      G++(1)
  401.  
  402.  
  403.  
  404.           compilers, and other old C compilers.
  405.  
  406.         +o  String ``constants''  are  not  necessarily  constant;
  407.           they  are stored in writable space, and identical look-
  408.           ing constants are allocated separately.
  409.  
  410.           For C++ programs only (not C), `----ttttrrrraaaaddddiiiittttiiiioooonnnnaaaallll'  has  one
  411.           additional  effect:  assignment  to  tttthhhhiiiissss is permitted.
  412.           This is the same as the effect of `----fffftttthhhhiiiissss----iiiissss----vvvvaaaarrrriiiiaaaabbbblllleeee'.
  413.  
  414.      ----UUUU_m_a_c_r_o
  415.           Undefine macro _m_a_c_r_o.
  416.  
  417.      ----WWWWaaaallllllll
  418.           Issue warnings for conditions which  pertain  to  usage
  419.           that  we recommend avoiding and that we believe is easy
  420.           to avoid, even in conjunction with macros.
  421.  
  422.      ----WWWWeeeennnnuuuummmm----ccccllllaaaasssshhhh
  423.           Warn  when  converting  between  different  enumeration
  424.           types.
  425.  
  426.      ----WWWWoooovvvveeeerrrrllllooooaaaaddddeeeedddd----vvvviiiirrrrttttuuuuaaaallll
  427.           In a derived class, the definitions  of  virtual  func-
  428.           tions  must match the type signature of a virtual func-
  429.           tion declared in the base class.  Use  this  option  to
  430.           request  warnings when a derived class declares a func-
  431.           tion that may be an erroneous attempt to define a  vir-
  432.           tual  function:  that is, warn when a function with the
  433.           same name as a virtual function in the base class,  but
  434.           with  a  type  signature that doesn't match any virtual
  435.           functions from the base class.
  436.  
  437.      ----WWWWtttteeeemmmmppppllllaaaatttteeee----ddddeeeebbbbuuuuggggggggiiiinnnngggg
  438.           When using templates in a C++ program, warn  if  debug-
  439.           ging is not yet fully available.
  440.  
  441.      ----wwww    Inhibit all warning messages.
  442.  
  443.      ++++eeee_N  Control how virtual function definitions are used, in a
  444.           fashion compatible with ccccffffrrrroooonnnntttt 1.x.
  445.  
  446. PPPPRRRRAAAAGGGGMMMMAAAASSSS
  447.      Two `####pppprrrraaaaggggmmmmaaaa' directives are supported for GNU C++, to  per-
  448.      mit using the same header file for two purposes: as a defin-
  449.      ition of interfaces to a given object class, and as the full
  450.      definition of the contents of that object class.
  451.  
  452.      ####pppprrrraaaaggggmmmmaaaa iiiinnnntttteeeerrrrffffaaaacccceeee
  453.           Use this directive in header files that  define  object
  454.           classes, to save space in most of the object files that
  455.           use those classes.  Normally, local copies  of  certain
  456.  
  457.  
  458.  
  459. GNU Tools            Last change: 30apr1993                     7
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466. G++(1)                      GNU Tools                      G++(1)
  467.  
  468.  
  469.  
  470.           information  (backup copies of inline member functions,
  471.           debugging information, and  the  internal  tables  that
  472.           implement  virtual  functions)  must  be  kept  in each
  473.           object file that includes class definitions.   You  can
  474.           use  this  pragma  to  avoid  such duplication.  When a
  475.           header file containing `####pppprrrraaaaggggmmmmaaaa iiiinnnntttteeeerrrrffffaaaacccceeee' is  included
  476.           in  a  compilation, this auxiliary information will not
  477.           be generated (unless the main input source file  itself
  478.           uses  `####pppprrrraaaaggggmmmmaaaa  iiiimmmmpppplllleeeemmmmeeeennnnttttaaaattttiiiioooonnnn').   Instead, the object
  479.           files will contain references to be  resolved  at  link
  480.           time.
  481.  
  482.      ####pppprrrraaaaggggmmmmaaaa iiiimmmmpppplllleeeemmmmeeeennnnttttaaaattttiiiioooonnnn
  483.  
  484.      ####pppprrrraaaaggggmmmmaaaa iiiimmmmpppplllleeeemmmmeeeennnnttttaaaattttiiiioooonnnn """"_o_b_j_e_c_t_s....hhhh""""
  485.           Use this pragma in a main input  file,  when  you  want
  486.           full  output from included header files to be generated
  487.           (and made globally visible).  The included header file,
  488.           in  turn, should use `####pppprrrraaaaggggmmmmaaaa iiiinnnntttteeeerrrrffffaaaacccceeee'. Backup copies
  489.           of inline member functions, debugging information,  and
  490.           the internal tables used to implement virtual functions
  491.           are all generated in implementation files.
  492.  
  493.           If you use `####pppprrrraaaaggggmmmmaaaa iiiimmmmpppplllleeeemmmmeeeennnnttttaaaattttiiiioooonnnn' with  no  argument,
  494.           it applies to an include file with the same basename as
  495.           your  source  file;  for  example,  in   `aaaallllllllccccllllaaaassssssss....cccccccc',
  496.           `####pppprrrraaaaggggmmmmaaaa  iiiimmmmpppplllleeeemmmmeeeennnnttttaaaattttiiiioooonnnn'  by  itself  is equivalent to
  497.           `####pppprrrraaaaggggmmmmaaaa iiiimmmmpppplllleeeemmmmeeeennnnttttaaaattttiiiioooonnnn """"aaaallllllllccccllllaaaassssssss....hhhh""""'.  Use the  string
  498.           argument  if  you  want a single implementation file to
  499.           include code from multiple header files.
  500.  
  501.           There is no way to split up the contents  of  a  single
  502.           header file into multiple implementation files.
  503.  
  504. FFFFIIIILLLLEEEESSSS
  505.      file.h             C header (preprocessor) file
  506.      file.i             preprocessed C source file
  507.      file.C             C++ source file
  508.      file.cc            C++ source file
  509.      file.cxx           C++ source file
  510.      file.s             assembly language file
  511.      file.o             object file
  512.      a.out              link edited output
  513.      _T_M_P_D_I_R/cc*          temporary files
  514.      _L_I_B_D_I_R/cpp         preprocessor
  515.      _L_I_B_D_I_R/cc1plus     compiler
  516.      _L_I_B_D_I_R/collect     linker front end needed on some machines
  517.      _L_I_B_D_I_R/libgcc.a    GCC subroutine library
  518.      /lib/crt[01n].o    start-up routine
  519.      _L_I_B_D_I_R/ccrt0       additional start-up routine for C++
  520.      /lib/libc.a        standard C library, see _i_n_t_r_o(3)
  521.      /usr/include       standard directory for ####iiiinnnncccclllluuuuddddeeee files
  522.  
  523.  
  524.  
  525. GNU Tools            Last change: 30apr1993                     8
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532. G++(1)                      GNU Tools                      G++(1)
  533.  
  534.  
  535.  
  536.      _L_I_B_D_I_R/include     standard gcc directory for ####iiiinnnncccclllluuuuddddeeee files
  537.      _L_I_B_D_I_R/g++-include   additional g++ directory for ####iiiinnnncccclllluuuuddddeeee
  538.  
  539.      _L_I_B_D_I_R is usually ////uuuussssrrrr////llllooooccccaaaallll////lllliiiibbbb////_m_a_c_h_i_n_e/_v_e_r_s_i_o_n.
  540.      _T_M_P_D_I_R comes from the environment variable  TTTTMMMMPPPPDDDDIIIIRRRR  (default
  541.      ////uuuussssrrrr////ttttmmmmpppp if available, else ////ttttmmmmpppp).
  542.  
  543. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  544.      gcc(1),  cpp(1),  as(1),  ld(1),  gdb(1),  adb(1),   dbx(1),
  545.      sdb(1).
  546.      `ggggcccccccc', `ccccpppppppp', `aaaassss',````ld'''',,,, and `ggggddddbbbb' entries in iiiinnnnffffoooo.
  547.      _U_s_i_n_g _a_n_d _P_o_r_t_i_n_g _G_N_U  _C_C  (_f_o_r  _v_e_r_s_i_o_n  _2._0),  Richard  M.
  548.      Stallman; _T_h_e _C _P_r_e_p_r_o_c_e_s_s_o_r, Richard M. Stallman; _D_e_b_u_g_g_i_n_g
  549.      _w_i_t_h _G_D_B: _t_h_e _G_N_U _S_o_u_r_c_e-_L_e_v_e_l _D_e_b_u_g_g_e_r, Richard M. Stallman
  550.      and  Roland H. Pesch; _U_s_i_n_g _a_s: _t_h_e _G_N_U _A_s_s_e_m_b_l_e_r, Dean Els-
  551.      ner, Jay Fenlason & friends;  _g_l_d:  _t_h_e  _G_N_U  _l_i_n_k_e_r,  Steve
  552.      Chamberlain and Roland Pesch.
  553.  
  554.  
  555. BBBBUUUUGGGGSSSS
  556.      For instructions on how to report bugs, see the GCC manual.
  557.  
  558.  
  559. CCCCOOOOPPPPYYYYIIIINNNNGGGG
  560.      Copyright (c) 1991, 1992,  1993  Free  Software  Foundation,
  561.      Inc.
  562.  
  563.      Permission is granted to make and distribute verbatim copies
  564.      of  this  manual provided the copyright notice and this per-
  565.      mission notice are preserved on all copies.
  566.  
  567.      Permission is granted to copy and distribute  modified  ver-
  568.      sions of this manual under the conditions for verbatim copy-
  569.      ing, provided that the entire resulting derived work is dis-
  570.      tributed under the terms of a permission notice identical to
  571.      this one.
  572.  
  573.      Permission is granted to copy and distribute translations of
  574.      this  manual  into  another language, under the above condi-
  575.      tions for modified versions,  except  that  this  permission
  576.      notice  may be included in translations approved by the Free
  577.      Software Foundation instead of in the original English.
  578.  
  579. AAAAUUUUTTTTHHHHOOOORRRRSSSS
  580.      See the GNU CC Manual for the contributors to GNU CC.
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591. GNU Tools            Last change: 30apr1993                     9
  592.  
  593.  
  594.  
  595.